var express = require('express');
var router = express.Router();
require('./../util/util');
var User = require('./../models/user');

//登录
router.post('/login', function(req, res, next) {
  var param = {
      userName:req.body.userName,
      userPwd:req.body.userPwd
  }
  User.findOne(param,function(err,doc){
    if(err){
      res.json({
          status:'1',
          msg:err.message
      })
    }else{
      if(doc){
        //保存cookie
        res.cookie('userId',doc.userId,{
          path:'/',
          maxAge:1000*60*60
        })
        res.cookie("userName",doc.userName,{
          path:'/',
          maxAge:1000*60*60
        });
        //req.session.user = user;
        res.json({
            status:'0',
            msg:'登录成功',
            result:{
              'userName':doc.userName
            }
        })
      }else{
          res.json({
              status:'1',
              msg:'用户名或密码不正确',
          })
      }
    }
  })
});

//退出
router.post('/logOut',function(req,res){
    //移除cookie
    res.cookie('userId','',{
        path:'/',
        maxAge:-1
    });
    res.cookie('userName','',{
        path:'/',
        maxAge:-1
    });
    res.json({
        status:'0',
        msg:'退出成功',
        result:''
    })
})

//检测是否登录
router.get('/checkLogin',function(req,res,next){
    if(req.cookies.userId){
        res.json({
            status:'0',
            msg:'',
            result:{
                userName:req.cookies.userName || ''
            }
        })
    }else{
        res.json({
            status:'1',
            msg:'未登录',
            result:''
        })
    }
})

//获取用户购物车数量
router.get('/getCartCount',function(req,res,next){
    if(req.cookies && req.cookies.userId){
        var userId = req.cookies.userId;
        User.findOne({userId:userId},function(err,doc){
            if(err){
                res.json({
                    status:'1',
                    msg:err.message,
                    result:''
                })
            }else{
                var cartList = doc.cartList;
                let cartCount = 0;
                cartList.map(function(item){
                    cartCount += parseInt(item.productNum);
                })
                res.json({
                    status:'0',
                    msg:'',
                    result:cartCount
                })
            }
        })
    }
})

router.get('/cartList',function(req,res,next){
    var userId = req.cookies.userId;
    User.findOne({userId:userId},function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            if(doc){
                res.json({
                    status:'0',
                    msg:'',
                    result:doc.cartList
                })
            }
        }
    })
})

//删除商品
router.post('/cartDel',function(req,res,next){
    var userId = req.cookies.userId,productId = req.body.productId;
    User.update({
        userId:userId
    },{
        $pull:{
            'cartList':{
                'productId':productId
            }
        }
    },function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            res.json({
                status:'0',
                msg:'删除成功',
                result:''
            })
        }
    })
})

//修改商品商量
router.post('/cartEdit',function(req,res,next){
    var userId = req.cookies.userId,
        productId = req.body.productId,
        productNum = req.body.productNum,
        checked = req.body.checked;
    User.update({'userId':userId,'cartList.productId':productId},{
        'cartList.$.productNum':productNum,
        'cartList.$.checked':checked
    },function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            res.json({
                status:'0',
                msg:'',
                result:'success'
            })
        }
    })
})

//购物车全选按钮
router.post("/editCheckAll", function (req,res,next) {
    var userId = req.cookies.userId,
        checkAll = req.body.checkAll?'1':'0';
    User.findOne({userId:userId}, function (err,user) {
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            });
        }else{
            if(user){
                user.cartList.forEach((item)=>{
                    item.checked = checkAll;
                })
                user.save(function (err1,doc) {
                    if(err1){
                        res.json({
                            status:'1',
                            msg:err1,message,
                            result:''
                        });
                    }else{
                        res.json({
                            status:'0',
                            msg:'',
                            result:'suc'
                        });
                    }
                })
            }
        }
    });
});

//查询用户地址接口
router.get('/addressList',function(req,res,next){
    var userId = req.cookies.userId;
    User.findOne({userId:userId},function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            res.json({
                status:'0',
                msg:'',
                result:doc.addressList
            })
        }
    })
})

//设置默认地址
router.post('/setDefault',function(req,res,next){
    var userId = req.cookies.userId;
    var addressId = req.body.addressId;
    User.findOne({userId:userId},function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            var addressList = doc.addressList;
            addressList.forEach((item)=>{
                if(item.addressId == addressId){
                    item.isDefault = true;
                }else{
                    item.isDefault = false;
                }
            })
            doc.save(function(err1,doc1){
                if(err1){
                    res.json({
                        status:'1',
                        msg:err1.message,
                        result:''
                    })
                }else {
                    res.json({
                        status:'0',
                        msg:'',
                        result:'success'
                    })
                }
            })
        }
    })
})

//删除地址接口
router.post('/delAddress',function(req,res,next){
    var userId = req.cookies.userId;
    var addressId = req.body.addressId;
    User.update({
        userId:userId
    },{
        $pull:{
            'addressList':{
                'addressId':addressId
            }
        }
    },function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            res.json({
                status:'0',
                msg:'删除成功',
                result:''
            })
        }
    })
})

//生成订单接口
router.post('/payMent',function(req,res,next){
    var userId = req.cookies.userId;
    var orderTotal = req.body.orderTotal;
    var addressId = req.body.addressId;

    User.findOne({userId:userId},function(err,doc){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else{
            var address = '', goodsList = [];

            //获取当前用户的地址信息
            doc.addressList.forEach((item)=>{
                if(item.addressId == addressId){
                    address = item;
                }
            })
            //获取用户购物车的购买数量
            doc.cartList.filter((item)=>{
                if(item.checked == '1'){
                    goodsList.push(item);
                }
            })
            var platform = '622';
            var r1 = Math.floor(Math.random()*10);
            var r2 = Math.floor(Math.random()*10);
            var sysDate = new Date().Format('yyyyMMddhhmmss');
            var createDate = new Date().Format('yyyy-MM-dd hh:mm:ss');
            var orderId = platform + r1 + sysDate + r2;

            //订单信息
            var order = {
                orderId:orderId,
                orderTotal:orderTotal,
                addressInfo:address,
                goodsList:goodsList,
                orderStatus:'1',
                createDate:createDate
            }
            doc.orderList.push(order);
            doc.save(function(err1,doc1){
                if(err1){
                    res.json({
                        status:'1',
                        msg:err1.message,
                        result:''
                    })
                }else {
                    res.json({
                        status:'0',
                        msg:'',
                        result:{
                            orderId:order.orderId,
                            orderTotal:order.orderTotal
                        }
                    })
                }
            });
        }
    })
})

//根据订单id查询订单信息
router.get('/orderDetail',function(req,res,next){
    var userId = req.cookies.userId,orderId = req.param('orderId');
    User.findOne({userId:userId},function(err,userInfo){
        if(err){
            res.json({
                status:'1',
                msg:err.message,
                result:''
            })
        }else {
            var orderList = userInfo.orderList;
            if(orderList.length>0){
                var orderTotal = 0;
                orderList.forEach((item)=>{
                    if(item.orderId == orderId){
                        orderTotal = item.orderTotal;
                    }
                })
                if(orderTotal>0){
                    res.json({
                        status:'0',
                        msg:'',
                        result:{
                            orderId:orderId,
                            orderTotal:orderTotal
                        }
                    })
                }else{
                    res.json({
                        status:'12002',
                        msg:'无此订单',
                        result:''
                    })
                }

            }else{
                res.json({
                    status:'12001',
                    msg:'当前用户暂未创建订单',
                    result:''
                })
            }
        }
    })
})

module.exports = router;
